/**
 * Created by Administrator on 2017/8/8 0008.
 */
/**
 * 发送验证码
 * @param target
 * @param time
 * @param mtarget
 * @param message
 */
function verifyCode(target,time,mtarget,message){
    if(time==0){
        target.removeAttr('disabled');
        target.css("color",'#ffad2c');
        target.html('获取验证码');
        if(mtarget){
            mtarget.closest('p').css('display','none');
            mtarget.html(message);
        }
    }
    else{
        target.attr('disabled','disabled');
        target.css("color",'#999');
        target.html(time+'s');
        if(mtarget){
            mtarget.closest('p').css('display','block');
            mtarget.html(message);
        }
        time--;
        setTimeout(function(){
            verifyCode(target,time);
        },1000)
    }
}

/**
 * 验证表单
 * 不需要验证的表单域加上  data-not-check="yes"
 * 密码验证加上  data-check="password"
 * 手机号码验证加上  data-check="mobile"
 * @param _form
 * @private
 */
function _check_form(_form) {
    var form_error = false;

    $.each(_form.find('input'), function (i, d) {
        // 检查input框是否为空
        if (!$(this).data('not-check') && !$(this).val() && $(this).attr('type') != 'file') {
            $(this).focus();
            $.toptip($(this).data('error'), 'error');
            form_error = true;
            return false;
        }
        // 检查密码
        if ($(this).attr('type') == 'password') {

        }
        // 检查手机号码
        if ($(this).data('check') == 'mobile') {
            var myreg = /^1[3|4|5|7|8][0-9]\d{8}$/;
            if(!myreg.test($(this).val()))
            {
                $.toptip('请输入有效的手机号码！', 'error');
                $(this).focus();
                form_error = true;
                return false;
            }
        }
    });
    if (form_error) {
        return false;
    }

    $.each(_form.find('textarea'), function (i, d) {
        // 检查input框是否为空
        if (!$(this).data('not-check') && !$(this).val()) {
            $(this).focus();
            $.toptip($(this).data('error'), 'error');
            form_error = true;
            return false;
        }
    });

    if (form_error) {
        return false;
    }
    return true;
}


/**
 * 微信支付-调取微信支付数据 插入body
 * @param _data
 */
function wechat_pay(_data) {
    $.ajax({
        type : 'POST',
        url : '/index/pay/wx_pay',
        data : _data,
        dataType : 'json',
        success : function (msg) {
            if(msg.code == 200) {
                console.log(msg);
                $("body").append(msg.tpl);
                $.hideLoading();
                callpay()
            } else {
                $.toptip(msg.msg, 'error');
                $.hideLoading();
            }
        }
    });
}

/**
 * 根据scope_obj获取数据列表
 */
function get_list_by_scope_obj() {
    if (!SCOPE.obj) {
        return false;
    }
    console.log(SCOPE.obj);
    $.showLoading();
    SCOPE.obj.is_more = false;
    $.ajax({
        type : 'POST',
        url : SCOPE.obj.url + '?page=' + SCOPE.obj.page,
        data : SCOPE.obj.data,
        dataType : 'json',
        success : function (msg) {
            $.hideLoading();
            if (SCOPE.obj.page == 1) {
                $(SCOPE.obj.container).css({
                    position:'fixed',
                    top:'2%',
                    left:'0',
                    right:'0',
                    display: 'block'
                });
                $(SCOPE.obj.container).html(msg.tpl);
                $(SCOPE.obj.container).animate({
                    top:'0'
                },666).css({
                    position:'absolute'
                });
            } else {
                $(SCOPE.obj.container).append(msg.tpl);
            }

            // 计算是否还有更多数据
            if (msg.data.is_more > 0) {
                SCOPE.obj.is_more = true;
            }
            SCOPE.obj.page++;
        }
    });
}

/**
 * 根据分类获取店铺在地图上面显示
 * @param _this
 * @param map
 */
function get_shop_list_by_category(_this, map) {
    console.log(_this);
    $.showLoading('正在加载');
    var data = {
        category_id : _this.data('id'),
        lat : $('input[name="lat"]').val(),
        lng : $('input[name="lng"]').val()
    };
    $.ajax({
        type : 'POST',
        url : SCOPE.index_get_shop_list_url,
        data : data,
        dataType : 'json',
        success : function (msg) {
            console.log(msg);
            if (msg.code == 200) {
                map.clearMap();  // 清除地图覆盖物
                var _data = msg.data.list;
                var _len = _data.length;

                var infoWindow = new AMap.InfoWindow({
                    offset: new AMap.Pixel(16, -35)
                });
                for(var i = 0; i < _len; i++) {
                    var aa = new AMap.Marker({
                        map: map,
                        icon: _data[i].logo,
                        position: [_data[i].lng, _data[i].lat],
                    });

                    // 设置label标签
                    aa.setLabel({ //label默认蓝框白底左上角显示，样式className为：amap-marker-label
                        offset: new AMap.Pixel(20, 13), //修改label相对于maker的位置
                        content:_data[i].name + '<span data-shop-id="'+_data[i].id+'"></span>'
                    });

                    aa.content = '<img class="shop-logo" src="'+_data[i].logo+'" style="float: left; margin-right: 5px;"><p style="font-weight: bold; font-size; .75rem">'+_data[i].name+'</p>' +
                        '<p>地址：'+_data[i].address+'</p>' +
                        '<p>电话：'+_data[i].mobile+'</p>' +
                        '<p class="map_p">' +
                        '<a href="javascript:;" class="shop-info" data-shop-id="'+_data[i].id+'">查看店铺详情</a>' +
                        '</p>';
                    aa.on('click', markerClick);
                    // // aa.emit('click', {target: aa});
                    //
                    // map.setFitView();
                    // var title = _data[i].name, content = [];
                    // content.push("<img class='shop-logo' src='"+_data[i].logo+"'>地址：" + _data[i].address);
                    // content.push("电话：" + _data[i].mobile);
                    // content.push("<a href='javascript:;' class='shop-info' data-shop-id='"+_data[i].id+"'>详细信息</a>");

                    // aa.content = createInfoWindow(title, content.join("<br/>"));
                    // aa.on('click', markerClick);
                    // aa.emit('click', {target: aa});
                }

                //构建自定义信息窗体
                function createInfoWindow(title, content) {
                    var info = document.createElement("div");
                    info.className = "info";

                    //可以通过下面的方式修改自定义窗体的宽高
                    //info.style.width = "400px";
                    // 定义顶部标题
                    var top = document.createElement("div");
                    var titleD = document.createElement("div");
                    var closeX = document.createElement("img");
                    top.className = "info-top";
                    titleD.innerHTML = title;

                    top.appendChild(titleD);
                    top.appendChild(closeX);
                    info.appendChild(top);

                    // 定义中部内容
                    var middle = document.createElement("div");
                    middle.className = "info-middle";
                    middle.style.backgroundColor = 'white';
                    middle.innerHTML = content;
                    info.appendChild(middle);
                    return info;
                }
                function markerClick(e) {
                    infoWindow.setContent(e.target.content);
                    infoWindow.open(map, e.target.getPosition());
                }

                $.hideLoading();
            } else {
                $.hideLoading();
            }

            // setTimeout(function () {
            //     console.log(123);
            // }, 888);
        }
    });
}

/**
 * 融云初始化函数
 * @param params
 * @param callbacks
 * @param modules
 */
function rong_init(params, callbacks, modules){
    var appKey = params.appKey;
    var token = params.token;
    var navi = params.navi || "";

    modules = modules || {};
    var RongIMLib = modules.RongIMLib || window.RongIMLib;
    var RongIMClient = RongIMLib.RongIMClient;
    var protobuf = modules.protobuf || null;

    var config = {};

    //私有云
    if(navi !== ""){
        config.navi = navi;
    }

    //support protobuf url + function
    if(protobuf != null){
        config.protobuf = protobuf;
    };

    RongIMLib.RongIMClient.init(appKey,null,config);

    var instance = RongIMClient.getInstance();

    // 连接状态监听器
    RongIMClient.setConnectionStatusListener({
        onChanged: function (status) {
            console.log(status);
            switch (status) {
                case RongIMLib.ConnectionStatus.CONNECTED:
                    callbacks.getInstance && callbacks.getInstance(instance);
                    break;
            }
        }
    });

    /*
     文档：http://www.rongcloud.cn/docs/web.html#3、设置消息监听器

     注意事项：
     1：为了看到接收效果，需要另外一个用户向本用户发消息
     2：判断会话唯一性 ：conversationType + targetId
     3：显示消息在页面前，需要判断是否属于当前会话，避免消息错乱。
     4：消息体属性说明可参考：http://rongcloud.cn/docs/api/js/index.html
     */
    RongIMClient.setOnReceiveMessageListener({
        // 接收到的消息
        onReceived: function (message) {
            // 判断消息类型
            console.log("新消息: " + message.targetId);
            callbacks.receiveNewMessage && callbacks.receiveNewMessage(message);
        }
    });

    //检测未读消息, 此接口必须在init()方法之后，连接融云服务器 connect 之前调用。
    RongIMClient.getInstance().hasRemoteUnreadMessages(token,{
        onSuccess:function(hasMessage){
            if(hasMessage){
                // 有未读的消息
                console.log('有未读消息');
            }else{
                // 没有未读的消息
                console.log('无未读消息');
            }
        },onError:function(err){
            // 错误处理...
            console.log('错了');
        }
    });

    //开始链接
    RongIMClient.connect(token, {
        onSuccess: function(userId) {
            callbacks.getCurrentUser && callbacks.getCurrentUser({userId:userId});
            console.log("链接成功，用户id：" + userId);
        },
        onTokenIncorrect: function() {
            //console.log('token无效');
        },
        onError:function(errorCode){
            console.log("=============================================");
            console.log(errorCode);
        }
    });
}

/**
 * 站内支付
 * @param _data
 */
function instation_pay(_data) {
    $.ajax({
        type : 'POST',
        url : '/index/pay/instation_pay',
        data : _data,
        dataType : 'json',
        success : function (msg) {
            $.hideLoading();
            if(msg.code == 200) {
                $.toptip('支付成功', 'success');
                setTimeout(function () {
                    window.location.href = '/index/order/index';
                }, 888);
            } else {
                $.toptip(msg.msg, 'error');
            }
        }
    });
}

/**
 * 提现
 * @param _data
 */
function withdraw_apply_for(_data) {
    $.ajax({
        type : 'POST',
        url : '/index/wallet/withdraw_apply_for',
        data : _data,
        dataType : 'json',
        success : function (msg) {
            $.hideLoading();
            if(msg.code == 200) {
                $(".paySucc").popup();
            } else {
                $.toptip(msg.msg, 'error');
            }
        }
    });
}

/**
 * 检查是否设置了支付密码
 */
function check_is_set_safe_password() {
    $.ajax({
        type : 'POST',
        url : '/index/pay/check_is_set_safe_password',
        data : {},
        dataType : 'json',
        success : function (msg) {
            console.log(msg);
            if(msg.code == 200) {
                //拉取支付密码模板
                $("#paymentPassword").popup();
            } else {
                //$("#safe_password_tpl").html('<p>未设置支付密码，<a href="/index/set/verification/type/safe_password">马上去</a></p>');
                //拉取支付密码模板
                $("#noPassword").popup();
            }
            $(".weui-loadmore").hide();
        }
    });
}

/**
 * 格式化金额
 * @param number
 * @param fix
 * @param fh
 * @param jg
 * @returns {string|*}
 */
function number_format(number,fix,fh,jg)//number传进来的数,fix保留的小数位,默认保留两位小数,fh为整数位间隔符号,默认为',',jg为整数位每几位间隔,默认为3位一隔
{
    console.log(number);
    var fix = arguments[1] ? arguments[1] : 2 ;
    var fh = arguments[2] ? arguments[2] : ',' ;
    var jg = arguments[3] ? arguments[3] : 3 ;
    var str = '' ;
    //number = number.toFixed(fix);
    zsw = number.split('.')[0];//整数位
    xsw = number.split('.')[1];//小数位
    zswarr = zsw.split('');//将整数位逐位放进数组
    for(var i=1;i<=zswarr.length;i++)
    {
        str = zswarr[zswarr.length-i] + str ;
        if(i%jg == 0)
        {
            str = fh+str;//每隔jg位前面加指定符号
        }
    }
    str = (zsw.length%jg==0) ? str.substr(1) : str;//如果整数位长度是jg的的倍数,去掉最左边的fh
    zsw = str+'.'+xsw;//重新连接整数和小数位
    return zsw;
}

function roundNumber(number,decimals) {
    var newString;
    decimals = Number(decimals);
    if (decimals < 1) {
        newString = (Math.round(number)).toString();
    } else {
        var numString = number.toString();
        if (numString.lastIndexOf(".") == -1) {
            numString += ".";
        }
        var cutoff = numString.lastIndexOf(".") + decimals;
        var d1 = Number(numString.substring(cutoff, cutoff + 1));
        var d2 = Number(numString.substring(cutoff + 1, cutoff + 2));
        if (d2 >= 5) {
            if (d1 == 9 && cutoff > 0) {
                while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {
                    if (d1 != ".") {
                        cutoff -= 1;``
                        d1 = Number(numString.substring(cutoff, cutoff + 1));
                    } else {
                        cutoff -= 1;
                    }
                }
            }
            d1 += 1;
        }
        if (d1 == 10) {
            numString = numString.substring(0, numString.lastIndexOf("."));
            var roundedNum = Number(numString) + 1;
            newString = roundedNum.toString() + '.';
        } else {
            newString = numString.substring(0, cutoff) + d1.toString();
        }
        if (newString.lastIndexOf(".") == -1) {
            newString += ".";
        }
    }
    var decs = (newString.substring(newString.lastIndexOf(".") + 1)).length;
    for (var i = 0; i < decimals - decs; i++) newString += "0";
    return newString;
}

/**
 * 上传店铺图片
 * @param id
 * @param path
 */
function upload_shop_img(id, path) {
    $.ajax({
        type : 'POST',
        url : '/index/shop/shop_image',
        data : {
            id : id,
            path : path
        },
        dataType : 'json',
        success : function (msg) {
            console.log(msg);
            if(msg.code == 200) {
                $.toptip('上传成功', 'success');
                return true;
            } else {
                $.toptip(msg.msg);
                return false;
            }
        }
    });
}